Vorwissen
Einsatz des Visitor Pattern beim auswerten von Parsebäumen
Das hier durchgeführte Reverse Engineering bezieht sich auf eine
Implementierung eines Parsers in JavaCC. Parser werden eingesetzt um
Ausdrücke auf die Korrektheit ihrer Syntax zu Überprüfen. Der Parser
ist in der Lage einen regulären Ausdruck zu Parsen. Dabei erstellt der
Parser einen sogenannten Abstrakten Syntaxbaum. Die Knoten des Baumes
sind mit einander Verwandt. Hier wird das Visitor Pattern eingesetzt um
die Baumstruktur zu traversieren. Dabei wird überprüft ob die
Interpretation eines Models zu einer wahren Aussage führt. Bei der
Traversierung der Struktur wird eine Hushtabelle mit der Interpretation
bis hin zu den Blättern weitergereicht. Die Blätter werden anschließend
mit den Werten der Hushtabelle belegt und ausgewertet. Die Knoten des
Baumes sind Rechenvorschriften die festlegen wie die Belegung
ausgewertet wird. Das Durchlaufen der Struktur erfolgt rekursiv.
Beispiel: (a|b) & (c -> (!d))
Wird dieser Ausdruck mit einem Parser zerlegt entsteht folgender Sysntaxbaum:
Die runden Elemente AND, OR, IMPLIES und Not sind Knoten des Baumes.
Die Rechtecke stehen für die Belegung der atomaren Ausdrücke a, b, c
und d. Mit dem Einsatz des Visitor Patterns wollen wir überprüfen ob
die oben aufgeführte Belegung zu einer wahren Aussage führt.
Falls Sie erfahren möchten wie man mit JavaCC und JJTree Parser
für unerschiedliche Anwendungen Parser implemetiert dann schauen sie
sich auf der JavaCC-Homepage um. Hier erfahren sie alles über Parserimplementierung mit Hilfe der Tools JavaCC und JJTree.
Ein JavaCC Eclipse Plugin und eine Anleitung wie man es mit Eclipse verwendet finden Sie hier.
Ein JavaCC Eclipse Plugin und eine Anleitung wie man es mit Eclipse verwendet finden Sie hier.